/* Copyright (c) 2010 OFXKit
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#import <Foundation/Foundation.h>

#import "OFXObject.h"
#import "OFXSecurity.h"

@interface OFX401kContribution : OFXObject {
  OFXSecurity* security;
  NSNumber* preTaxContributionPercent;
  NSNumber* preTaxContributionAmount;
  NSNumber* afterTaxContributionPercent;
  NSNumber* afterTaxContributionAmount;
  NSNumber* matchContributionPercent;
  NSNumber* matchContributionAmount;
  NSNumber* profitSharingContributionPercent;
  NSNumber* profitSharingContributionAmount;
  NSNumber* rolloverContributionPercent;
  NSNumber* rolloverContributionAmount;
  NSNumber* otherVestingContributionPercent;
  NSNumber* otherVestingContributionAmount;
  NSNumber* otherNonVestingContributionPercent;
  NSNumber* otherNonVestingContributionAmount;
}

/**
 * @property security
 * @brief Security in contribution
 */
@property(retain) OFXSecurity* security;

/**
 * @property preTaxContributionPercent
 * @brief Percentage of each new employee pretax contribution allocated to this
 * security
 */
@property(retain) NSNumber* preTaxContributionPercent;

/**
 * @property preTaxContributionAmount
 * @brief Fixed amount of each new employee pretax contribution allocated to 
 * this security
 */
@property(retain) NSNumber* preTaxContributionAmount;

/**
 * @property afterTaxContributionPercent
 * @brief Percentage of each new employee after tax contribution allocated to 
 * this security
 */
@property(retain) NSNumber* afterTaxContributionPercent;

/**
 * @property afterTaxContributionAmount
 * @brief Fixed amount of each new employee pretax contribution allocated to
 * this security
 */
@property(retain) NSNumber* afterTaxContributionAmount;

/**
 * @property matchContributionPercent
 * @brief Percentage of each new employer match contribution allocated to 
 * this security
 */
@property(retain) NSNumber* matchContributionPercent;

/**
 * @property matchContributionAmount
 * @brief Fixed amount of each new employer match contribution allocated to
 * this security
 */
@property(retain) NSNumber* matchContributionAmount;

/**
 * @property profitSharingContributionPercent
 * @brief Percentage of each new employer profit sharing contribution allocated
 * to this security
 */
@property(retain) NSNumber* profitSharingContributionPercent;

/**
 * @property profitSharingContributionAmount
 * @brief Fixed amount of each new employer profit sharing contribution 
 * allocated to this security
 */
@property(retain) NSNumber* profitSharingContributionAmount;

/**
 * @property rolloverContributionPercent
 * @brief Percentage of new rollover contributions allocated to this security
 */
@property(retain) NSNumber* rolloverContributionPercent;

/**
 * @property rolloverContributionAmount
 * @brief Fixed amount of new rollover contributions allocated to this security
 */
@property(retain) NSNumber* rolloverContributionAmount;

/**
 * @property otherVestingContributionPercent
 * @brief Percentage of each new other employer contribution allocated to 
 * this security
 */
@property(retain) NSNumber* otherVestingContributionPercent;

/**
 * @property otherVestingContributionAmount
 * @brief Fixed amount of each new other employer contribution allocated to 
 * this security
 */
@property(retain) NSNumber* otherVestingContributionAmount;

/**
 * @property otherNonVestingContributionPercent
 * @brief Percentage of each new other employee contribution allocated to this
 * security
 */
@property(retain) NSNumber* otherNonVestingContributionPercent;

/**
 * @property otherNonVestingContributionAmount
 * @brief Fixed amount of each new other employee contribution allocated to
 * this security
 */
@property(retain) NSNumber* otherNonVestingContributionAmount;

@end
